/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jogodavelha;

import java.util.Scanner;

/**
 *
 * @author Gabriel
 */
public class Tabuleiro{
    
    private int x, y;
    
    private String [][] tabuleiro;
    private String posAtual;        
    private Scanner leitor;
    
    
    public Tabuleiro (){
        tabuleiro = new String[3][3];
        for(x=0;x<tabuleiro.length;x++){
            for(y=0;y<tabuleiro.length;y++) {
                tabuleiro[x][y] = "-";
            }
        }
    }
    
    
    public void getPosicao(int x, int y, int jogador) {
        x=x-1;
        y=y-1;
        if(jogador == 1) {
            tabuleiro[x][y] = "O";
        }
        else if (jogador == 2) {
            tabuleiro[x][y] = "X";
        }
        else {
            System.out.println("Tem algo errado");
        }
    }
    
    public void Joga (int jogador){
        leitor = new Scanner(System.in);
        System.out.println("Jogador " + jogador + "- Digite a coordenada X e logo após a coordenada Y: ");
        System.out.printf("Posição x:");
        x = leitor.nextInt();
        System.out.printf("Posição y:");
        y = leitor.nextInt();
        while(!verificaJogada(x, y)) {
                System.out.println("Jogada inválida. Jogue novamente: ");
                System.out.printf("Posição x:");
                x = leitor.nextInt();
                System.out.printf("Posição y:");
                y = leitor.nextInt();
        }
        getPosicao(x, y, jogador);
        printTabuleiro();
        
        
    }
    
    
    public boolean verificaJogada (int x, int y) {
        x=x-1;
        y=y-1;
        if(x > 2 || y > 2) {
            return false;
        }
        else if("-".equals(tabuleiro[x][y])){
            return true;
        }
        else {
            return false;
        }
    }
    
    boolean empatou () {
        for(x=0;x<tabuleiro.length;x++) {
            for(y=0;y<tabuleiro.length;y++) {
                if(tabuleiro[x][y] == "-") {
                    return false;
                }
            }
        }
        return true;
    }
    
   boolean verificaGanhador () {
       for(x=0;x<tabuleiro.length;x++) {
            if(!"-".equals(tabuleiro[x][0]) && tabuleiro[x][0].equals(tabuleiro[x][1]) && tabuleiro[x][0].equals(tabuleiro[x][2])) {
            posAtual = tabuleiro[x][0];
                switch (posAtual) {
                        case "O":
                          System.out.println("O jogador 1 venceu!");
                         return true;
                        case "X":
                         System.out.println("O jogador 2 venceu!");
                            return true;
                }
            }
            else if(!"-".equals(tabuleiro[0][x]) && tabuleiro[0][x].equals(tabuleiro[1][x]) && tabuleiro[0][x].equals(tabuleiro[2][x])) {
            posAtual = tabuleiro[0][x];
            switch (posAtual) {
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
       }
       if(!"-".equals(tabuleiro[0][0]) && tabuleiro[0][0].equals(tabuleiro[1][1]) && tabuleiro[0][0].equals(tabuleiro[2][2])) {
            posAtual = tabuleiro[0][0];
            switch (posAtual) {
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
        else if(!"-".equals(tabuleiro[0][2]) && tabuleiro[0][2].equals(tabuleiro[1][1]) && tabuleiro[0][2].equals(tabuleiro[2][0])) {
            posAtual = tabuleiro[0][2];
            switch (posAtual) {
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
        else if(empatou()) {
            System.out.println("Empatou!");
            return true;
        }
        return false;
   }

    
    public void printTabuleiro() {
        for(x=0;x<tabuleiro.length;x++){
            for(y=0;y<tabuleiro.length;y++) {
                System.out.printf(" " + tabuleiro[x][y]);
                if(y == 2){
                    System.out.println();
                }
            }
        }
    }




    
}
